//
//  BaseTableVC.m
//  YJJ0
//
//  Created by dadaxueche on 16/7/11.
//  Copyright © 2016年 王—wagn. All rights reserved.
//

#import "BaseTableVC.h"

@interface BaseTableVC ()

@end

@implementation BaseTableVC

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //防止 push 时出现的假延迟的情况
    self.view.backgroundColor = [UIColor whiteColor];
    if (!_tableView) {
        CGRect tableViewFrame = self.view.bounds;
        _tableView = [[UITableView alloc] initWithFrame:tableViewFrame style:self.tableViewStyle];
        [self registerClassForTableView];
        _tableView.dataSource = self;
        _tableView.delegate = self;
        _tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
    }
    [self.view addSubview:_tableView];
    [self hideExtraCellLine];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    
    //返回时上次的选项逐渐取消选中状态
    NSIndexPath *selectedOne = [self.tableView indexPathForSelectedRow];
    if (selectedOne) {
        [self.tableView deselectRowAtIndexPath:selectedOne animated:YES];
        
    }
}

-(void)registerClassForTableView{
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 1;
}
/**
 * 当tableviewstyle是plain时，底部会有多余的分割线，可以用这个方法隐藏。（前提必须是numberOfRows大于0.等于0时用separatorStyleNone）
 */

-(void)hideExtraCellLine{
    if (self.tableViewStyle == UITableViewStylePlain) {
        self.tableView.tableFooterView = [[UIView alloc]init];
    }
}

-(void)adjustInsetForTabbar{
    if (_tableView) {
        UIEdgeInsets currentInset = _tableView.contentInset;
        currentInset.bottom = self.tabBarController.tabBar.height;
        _tableView.contentInset = currentInset;
        
        UIEdgeInsets indicatorInset = _tableView.scrollIndicatorInsets;
        indicatorInset.bottom = self.tabBarController.tabBar.height;
        _tableView.scrollIndicatorInsets = indicatorInset;
        
    }
}

-(void)dealloc {
    _tableView.dataSource = nil;
    _tableView.delegate = nil;
    
}

-(void)delayReloadTableView {
    __block BOOL bCanIgnoreUpdate = NO;
    if (bCanIgnoreUpdate == YES) {
        return;
    }
    
    bCanIgnoreUpdate = YES;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        bCanIgnoreUpdate = NO;
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.tableView reloadData];
        });
    });
}
@end
